Сериализуемость транзакций

Введение

В этой статье рассмотрим, что такое «Сериализуемость» (Serializability) и какие гарантии она предоставляет.

В реляционных СУБД уровень изоляции Serializable (сериализуемость), как следует из названия, обеспечивает сериализуемость транзакций. Однако, как вы увидите далее, в некоторых базах данных реализована также строгая сериализуемость (Strict Serializability), которая представляет собой комбинацию сериализуемости и линеаризуемости (Linearizability).

Последовательное выполнение

Прежде чем говорить о сериализуемости, давайте рассмотрим последовательное выполнение (Serial execution). Сериализуемость и последовательное выполнение — это не одно и то же.

Последовательное выполнение обеспечивает монопольный доступ к общему ресурсу одному и только одному клиенту в каждый отдельно взятый момент времени. Это показано на диаграмме ниже:

Предоставляя монопольный доступ к разделяемым ресурсам, можно предотвратить

Читать далее